home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t1.d64 / character gen.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  3KB  |  132 lines

  1. 5 POKE56,48:POKE55,0:CLR
  2. 10 REM SET UP PROGRAMMABLE CHARACTER SET
  3. 20 FORJ=0TO39:READA:N=N+A
  4. 30 POKE832+J,A:NEXT
  5. 40 IFN<>4782THENPRINT"DATA ERROR":STOP
  6. 50 SYS832
  7. 2000 DATA 120,169,51,133,1
  8. 2010 DATA 160,224,162,0,189
  9. 2020 DATA 0,208,157,0,48
  10. 2030 DATA 232,208,247,238,75
  11. 2040 DATA 3,238,78,3,204
  12. 2050 DATA 75,3,208,236,169
  13. 2060 DATA 55,133,1,88,169
  14. 2070 DATA 28,141,24,208,96
  15. 2999 GOTO8000
  16. 3000 PRINT"[147]";
  17. 3005 PO=1024:PP=0:I=91
  18. 3010 FORJ=1TO8
  19. 3020 PRINT"[219][219][219][219][219][219][219][219]"
  20. 3030 NEXT:PRINT"";
  21. 3031 IFCP=0THENGOTO9000
  22. 3035 CP=10
  23. 3037 POKEPO+PP,102
  24. 3040 GETA$:IFA$=""THEN3040
  25. 3050 IFA$="[133]"THEN3120
  26. 3055 IFA$="[136]"THEN6000
  27. 3060 IFA$=" "THEN3130
  28. 3065 IFA$="[147]"THENCP=0:GOTO3000
  29. 3070 IFA$="[145]"THEN3140
  30. 3075 IFA$=""THENCP=10:GOTO3000
  31. 3080 IFA$=""THEN3160
  32. 3090 IFA$=""THEN3180
  33. 3100 IFA$="[157]"THEN3190
  34. 3110 GOTO3040
  35. 3120 POKEPO+PP,160:I=160:GOTO5000
  36. 3130 POKEPO+PP,91:I=91:GOTO5000
  37. 3140 IFPP-40<0THEN3040
  38. 3150 DL=-40:GOTO5000
  39. 3160 IFPP+40>288THEN3040
  40. 3170 DL=+40:GOTO5000
  41. 3180 DL=1:GOTO4000
  42. 3190 DL=-1:GOTO4000
  43. 4000 RESTORE
  44. 4010 FORY=1TO40:READA:NEXT
  45. 4020 FORQ=0TO(INT(PP/40))*2:READA:NEXT
  46. 4030 DATA7,0,47,40,87,80,127,120,167,160,207,200,247,240,287,280
  47. 4040 READB
  48. 4050 IFDL=1ANDPP=ATHENDL=0:GOTO3040
  49. 4060 IFDL=-1ANDPP=BTHENDL=0:GOTO3040
  50. 4070 GOTO5000
  51. 5000 POKEPO+PP,I
  52. 5010 PP=PP+DL:DL=0
  53. 5020 I=PEEK(PO+PP)
  54. 5030 POKEPO+PP,102
  55. 5040 GOTO3040
  56. 6000 POKEPO+PP,I
  57. 6010 FORJ=0TO7
  58. 6020 FORT=0TO7
  59. 6030 WW=PEEK(1024+J*40+T)
  60. 6035 YO=2^(7-T)
  61. 6040 IFWW=160THENRR=RR+YO
  62. 6050 NEXT
  63. 6060 POKE12288+J+WO*8,RR
  64. 6061 PRINT"DATA"RR
  65. 6065 RR=0
  66. 6070 NEXT
  67. 6080 PRINT"DO YOU WISH TO RE-MAKE ANOTHER CHARACTER"
  68. 6090 GETA$:IFA$=""THEN6090
  69. 6095 CP=0
  70. 6100 IFA$="Y"THEN7000
  71. 6110 END
  72. 7000 PRINT"[147]256-511 FOR LOWER CASE CHAR."
  73. 7010 INPUT"NUMBER OF CHARACTER TO CHANGE";WO
  74. 7020 IFWO<0ORWO>511THEN7010
  75. 7030 GOTO10000
  76. 8000 PRINT"[147]";
  77. 8010 PRINT"     CHARACTER GENERATOR FOR THE 64"
  78. 8020 PRINT"     [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
  79. 8030 PRINT"THIS PROGRAM WAS DESIGNED SO YOU "
  80. 8040 PRINT"COULD MAKE YOUR OWN CHARACTERS AND"
  81. 8050 PRINT"THEN SEE WHAT DATA TO USE."
  82. 8060 PRINT"FIRST IT WILL ASK FOR A NUMBER,"
  83. 8070 PRINT"(MEANING THE SCREEN CODE OF A CHARACTER)";
  84. 8080 PRINT"AND THEN YOU CAN MAKE A CHARACTER ON"
  85. 8090 PRINT"AN 8 BY 8 GRID."
  86. 8100 PRINT"YOU CAN MOVE WITH THE CURSOR KEYS,"
  87. 8110 PRINT"AND LEAVE A DOT WITH F1 AS WELL AS"
  88. 8120 PRINT"TAKING THE DOT AWAY WITH 'SPACE'."
  89. 8130 PRINT"ONCE YOU HAVE FINISHED PRESS F7 TO"
  90. 8140 PRINT"MAKE CHARACTER AND LIST DATA"
  91. 8141 PRINT"PRESS SPACE TO CONTINUE..."
  92. 8142 GETA$:IFA$=""THEN8142
  93. 8143 PRINT"[147]IF YOU WISH TO SEE YOUR CHARACTER,"
  94. 8144 PRINT"SAY THAT YOU DON'T WANT TO MAKE ANOTHER"
  95. 8146 PRINT"CHARACTER AND THE PROGRAM WILL END."
  96. 8148 PRINT"IF YOU WANT TO GO BACK TO THE PROGRAM"
  97. 8149 PRINT"TYPE CONT SO THAT THE CHARACTERS WON'T"
  98. 8150 PRINT"BE ERASED. IT WILL GO BACK AND ASK"
  99. 8151 PRINT"WHAT CHARACTER TO DO."
  100. 8152 PRINT"USE CLR TO CLEAR THE AREA AND PUT THE"
  101. 8153 PRINT"CHARACTER BACK ON."
  102. 8154 PRINT"USE HOME TO JUST CLEAR THE SCREEN."
  103. 8159 PRINT"PRESS SPACE TO BEGIN..."
  104. 8160 GETA$:IFA$=""THEN8160
  105. 8170 GOTO7000
  106. 9000 FORJ=0TO7
  107. 9010 QQ=PEEK(12288+UI*8+J)
  108. 9020 IFQQ>127THENPOKE1024+J*40,160:QQ=QQ-128
  109. 9030 IFQQ>63THENPOKE1024+J*40+1,160:QQ=QQ-64
  110. 9040 IFQQ>31THENPOKE1024+J*40+2,160:QQ=QQ-32
  111. 9050 IFQQ>15THENPOKE1024+J*40+3,160:QQ=QQ-16
  112. 9060 IFQQ>7THENPOKE1024+J*40+4,160:QQ=QQ-8
  113. 9070 IFQQ>3THENPOKE1024+J*40+5,160:QQ=QQ-4
  114. 9080 IFQQ>1THENPOKE1024+J*40+6,160:QQ=QQ-2
  115. 9090 IFQQ>0THENPOKE1024+J*40+7,160:QQ=QQ-1
  116. 9100 NEXT
  117. 9105 I=PEEK(1024)
  118. 9110 GOTO3035
  119. 10000 PRINT"DO YOU WISH THAT CHARACTER TO BE"
  120. 10010 PRINT"VIEWED OR DO YOU WANT TO SEE A"
  121. 10020 PRINT"DIFFERENT CHARACTER?"
  122. 10030 PRINT"PRESS S[146]AME OR D[146]IFFERENT?"
  123. 10040 GETA$:IFA$=""THEN10040
  124. 10050 IFA$="S"THENUI=WO:GOTO3000
  125. 10060 IFA$="D"THEN11000
  126. 10070 GOTO10040
  127. 11000 PRINT"256-511 FOR LOWER CASE"
  128. 11010 PRINT"NUMBER OF CHARACTER TO BE SEEN?"
  129. 11020 INPUTUI
  130. 11030 IFUI<0ORUI>511THEN11000
  131. 11040 GOTO3000
  132.